export const securityConfig = {
  // 访问控制
  access: {
    // IP限制
    ipControl: {
      enabled: true,
      rules: {
        whitelist: [
          '127.0.0.1',
          '192.168.0.0/16', // 内网IP
          '10.0.0.0/8',
        ],
        blacklist: [],
        // 国内运营商IP段
        allowedRanges: [
          '111.0.0.0/8', // 电信
          '183.0.0.0/8', // 移动
          '123.0.0.0/8', // 联通
        ],
      },
      rateLimit: {
        window: 60000, // 时间窗口(ms)
        max: 1000, // 最大请求数
        message: '请求过于频繁，请稍后再试',
      },
    },

    // 登录保护
    loginProtection: {
      enabled: true,
      maxAttempts: 5, // 最大尝试次数
      lockTime: 1800, // 锁定时间(秒)
      verification: {
        methods: ['sms', 'email'], // 验证方式
        expireTime: 300, // 验证码有效期
        template: {
          sms: 'SMS_LOGIN_VERIFY',
          email: 'D:\\livechat\\templates\\login_verify.html',
        },
      },
    },
  },

  // 数据安全
  data: {
    // 加密配置
    encryption: {
      algorithm: 'aes-256-gcm', // 加密算法
      keys: {
        user: process.env.USER_ENCRYPT_KEY,
        payment: process.env.PAYMENT_ENCRYPT_KEY,
        stream: process.env.STREAM_ENCRYPT_KEY,
      },
      // 敏感数据
      sensitive: ['password', 'idcard', 'phone', 'bankcard'],
    },

    // 数据备份
    backup: {
      enabled: true,
      type: 'incremental', // 增量备份
      schedule: '0 2 * * *', // 每天凌晨2点
      storage: {
        local: {
          path: 'D:\\livechat\\backups',
          retain: 7, // 保留7天
        },
        remote: {
          enabled: true,
          type: 'oss', // 阿里云OSS
          bucket: 'backup-bucket',
          prefix: 'livechat/',
          retain: 30, // 保留30天
        },
      },
    },
  },

  // 内容安全
  content: {
    // 实时检测
    realtime: {
      enabled: true,
      provider: 'aliyun', // 阿里云内容安全
      types: [
        'porn', // 鉴黄
        'terrorism', // 暴恐
        'political', // 政治敏感
        'ad', // 广告
      ],
      action: {
        block: ['porn', 'terrorism'],
        warn: ['political', 'ad'],
      },
    },

    // 敏感词过滤
    wordFilter: {
      enabled: true,
      source: {
        local: 'D:\\livechat\\dict\\sensitive.txt',
        remote: 'https://example.com/api/words',
      },
      update: {
        auto: true,
        interval: 86400, // 每天更新
      },
    },
  },

  // 防护配置
  protection: {
    // XSS防护
    xss: {
      enabled: true,
      mode: 'sanitize', // 清洗模式
      options: {
        whiteList: {}, // 标签白名单
        stripIgnoreTag: true,
        stripIgnoreTagBody: ['script', 'style'],
      },
    },

    // CSRF防护
    csrf: {
      enabled: true,
      key: 'csrf-token',
      ignoreMethods: ['GET', 'HEAD', 'OPTIONS'],
      cookieOptions: {
        httpOnly: true,
        secure: process.env.NODE_ENV === 'production',
      },
    },

    // DDos防护
    ddos: {
      enabled: true,
      provider: 'cloudflare', // 使用Cloudflare
      rules: {
        threshold: 2000, // 请求阈值
        interval: 60, // 检测间隔(秒)
        blockDuration: 3600, // 封禁时长(秒)
      },
    },
  },
}
